pub fn convert_base(input: &str, target_base: u32) -> String {
    // 实现⼀个算法，⽀持任意2-16进制数之间转换，如：2进制转7进制，7进制转16进制，15进制转8进制等。
    // 提取输入中的数值和进制，例如 "10(2)" 中的 "10" 和 "2"
    let parts: Vec<&str> = input.split('(').collect();
    if parts.len() != 2 || !parts[1].ends_with(')') {
        panic!("Invalid input format");
    }
    let value = parts[0]; // 数值部分
    let source_base = parts[1].trim_end_matches(')').parse::<u32>().unwrap();

    // 将 source_base 进制的数字转换为十进制
    let mut num = u32::from_str_radix(value, source_base).expect("Failed to parse input number");

    // 将十进制数字转换为 target_base 进制
    let mut result = String::new();
    let digits = "0123456789abcdef";
    if num == 0 {
        return "0".to_string();
    }

    while num > 0 {
        let remainder = (num % target_base) as usize;
        result.push(digits.chars().nth(remainder).unwrap());
        num /= target_base;
    }

    // 转换结果需要反转，因为计算是从最低位到最高位
    result.chars().rev().collect()
}
